﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Domain.Model.Base
{
    public abstract class IdentifiedObject
    {
        #region Atributos Privados        
        /// <summary>
        /// Llave primaria en la BD
        /// </summary>
        private int pk;        

        #endregion

        #region Constructor

        protected IdentifiedObject()
        {
            pk = -1;
        }

        #endregion

        #region Propiedades

        /// <summary>
        /// Propiedad de solo lectura que permite obtener la pk
        /// </summary>        
        public int PK
        {
            get { return this.pk; }
            set {
                if (this.pk == -1) pk = value;
                else throw new Exception("La llave primaria no se puede modificar!");
            }
        }

        #endregion
    }
}
